home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 002 / pc_pad.arc / BIGNUM.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1984-07-29  |  6.7 KB  |  218 lines

  1. 1   'BIGNUM3.BAS  09/05/83  FOR IBM PC  FROM CP/M PUBLIC DOMAIN
  2. 6  GOTO 50
  3. 7  SAVE "BIGNUM3.BAS",A:STOP
  4. 50  CLS
  5. 60  PRINT TAB(20)"   B I G    N U M B E R S   G A M E"
  6. 70  PRINT: PRINT "Please Enter A 4-digit ";:RANDOMIZE
  7. 80  PRINT
  8. 100  CLEAR 500
  9. 200  DIM W$(101),W1$(10),W2$(10),W3$(8),W4$(34),W5$(21),W6$(36),W7$(74)
  10. 300  FOR LL=1 TO 10:READ W1$(LL):NEXT  LL
  11. 400  FOR II=1 TO 10:READ W2$(II):NEXT  II
  12. 500  FOR OO=1 TO 8:READ W3$(OO):NEXT  OO
  13. 600  FOR QQ=1 TO 34:READ W4$(QQ):NEXT  QQ
  14. 700  FOR EE=1 TO 21:READ W5$(EE):NEXT  EE
  15. 800  FOR GG=1 TO 36:READ W6$(GG):NEXT  GG
  16. 900  FOR UU=1 TO 74:READ W7$(UU):NEXT  UU
  17. 1000  ' FROM OCT CREATIVE COMPUTING BY  JERRY CRAVEA
  18. 1100  ' MADE TO RUN  ON CP/M 2.2 MBASIC BY T MCCORMICK  05/82
  19. 1200  DATA "ZERO","ONE","TWO","THREE","FOUR","FIVE","SIX","SEVEN"
  20. 1300  DATA "EIGHT","NINE"
  21. 1400  DATA "TEN","ELEVEN","TWELVE","THIRTEEN","FOURTEEN","FIFTEEN"
  22. 1500  DATA "SIXTEEN","SEVENTEEN","EIGHTEEN","NINTEEN"
  23. 1600  IF D$="0" THEN 8800
  24. 1700  DATA "TWENTY ","THIRTY ","FOURTY ","FIFTY ","SIXTY ","SEVENTY "
  25. 1800  DATA "EIGHTY ","NINETY "
  26. 1900  DATA "HUNDRED","THOUSAND","MILLION","BILLION","TRILLION","QUADRILLION"
  27. 2000  DATA "QUINTILLION","SEXTILLION","SEPTILLION","OCTILLION","NONILLION"
  28. 2100  DATA "DECILLION","UNDECILLION","DUODECILLION","TREDECILLION"
  29. 2200  DATA "QUATTUORDECILLION","QUINDECILLION","SEXDECILLION"
  30. 2300  DATA "SEPTENDECILLION","OCTODECILLION","NOVEMDECILLION","VIGINTILLION"
  31. 2400  DATA "VIGINTIUNTILLION","VIGINTIDUOTILLION","VIGINTITRETILLION"
  32. 2500  DATA "VIGINTIQUATTOURTILLION","VIGINTIQUINTILLION","VIGINTISEXTILLION"
  33. 2600  DATA "VIGINTISEPTILLION","VIGINTIOCTILLION","VIGINTINONILLION"
  34. 2700  DATA "TRIGINTATILLION","TRIGINTAUNTILLION","TRIGINTADUOTILLION"
  35. 2800  DATA "FIRST","SECOND","THIRD","FOURTH","FIFTH","SIXTH","SEVENTH"
  36. 2900  DATA "EIGHTH","NINTH","TENTH","ELEVENTH","TWELFTH","THRITEENTH"
  37. 3000  DATA "FOURTEENTH","FIFTEENTH","SIXTEENTH","SEVENTEENTH","EIGHTEENTH"
  38. 3100  DATA "NINTEENTH","TWENTIETH","NEXT "
  39. 3200  C=0
  40. 3300  I=0
  41. 3400  PRINT 
  42. 3500  PRINT "HI THERE! MY NAME IS BIG NUMBERS, WHAT IS YOUR NAME";
  43. 3600  INPUT A1$
  44. 3700  J=LEN(A1$)
  45. 3800  IF J<=25 THEN 4900
  46. 3900  IF I<>0 THEN 4700
  47. 4000  PRINT 
  48. 4100  PRINT "SORRY "; A1$; ","
  49. 4200  PRINT "BUT I GET TIRED EASILY SAYING LONG NAMES."
  50. 4300  PRINT "LONG NUMBERS ARE MY THING, YOU KNOW"
  51. 4400  PRINT "PLEASE RETYPE YOUR NAME NOW AND LIMIT TO 25 SPACES OR LESS"
  52. 4500  I=1
  53. 4600  GOTO 3600
  54. 4700  A1$=MID$(A1$,1,25)
  55. 4800  GOTO 5100
  56. 4900  IF I=0 THEN 5100
  57. 5000  PRINT "WHEW, THANK YOU "; A1$; "! THATS MUCH BETTER."
  58. 5100  PRINT 
  59. 5200  PRINT "NOW "; A1$; ",DO YOU WANT SOME INSTRUCTIONS"
  60. 5300  PRINT "ON WHAT TO DO (YES/NO)";
  61. 5400  INPUT A$
  62. 5500  IF MID$(A$,1,1)="N" THEN 6500
  63. 5600  IF MID$(A$,1,1)<>"Y" THEN 5200
  64. 5700  PRINT 
  65. 5800  PRINT "I CAN TEACH YOU HOW TO SAY BIG NUMBERS, "; A1$; "."
  66. 5900  PRINT "TYPE IN ANY POSITIVE WHOLE NUMBER AND I WILL PRINT  THE WORDS"
  67. 6000  PRINT "TO USE TO SAY THAT NUMBER IN ENGLISH YOU MAY USE COMMAS TO"
  68. 6100  PRINT "SEPARATE GROUPS OF THREE DIGITS IF  YOU WISH BUT YOU DONT HAVE"
  69. 6200  PRINT "TO FOR EXAMPLE, 1093 & 1,093 ARE THE SAME NUMBER TO ME"
  70. 6300  PRINT "ONLY THE 10 DIGITS (0-9) AND COMMAS ARE ALLOWED IN THE"
  71. 6400  PRINT "NUMBERS YOU TYPE IN. WHEN YOU WISH TO STOP, TYPE END OR QUIT"
  72. 6500  PRINT 
  73. 6600  C=C+1
  74. 6700  IF C<=21 THEN 6900
  75. 6800  C=21
  76. 6900  PRINT " OK, "; A1$; ". ENTER YOUR "; W5$(C); " NUMBER NOW"
  77. 7000  INPUT I$
  78. 7100  IF MID$(I$,1,3)="END" THEN 21000
  79. 7200  IF MID$(I$,1,4)="QUIT" THEN 21000
  80. 7300  L=LEN(I$)
  81. 7400  N=0
  82. 7500  G=0
  83. 7600  Z=1
  84. 7700  FOR J = 1 TO L
  85. 7800  D$=MID$(I$,J,1)
  86. 7900  IF D$="," THEN 8800
  87. 8000  IF D$=" " THEN 8800
  88. 8100  IF D$< "0" OR D$> "9" THEN 9900
  89. 8200  ON Z  GOTO 8300,8500
  90. 8300  IF D$="0" THEN 8800
  91. 8400  Z=2
  92. 8500  N=N+1
  93. 8600  IF N>101 THEN 17600
  94. 8700  W$(N)=D$
  95. 8800  NEXT J
  96. 8900  IF N>0 GOTO 9200
  97. 9000  N=1
  98. 9100  W$(N)="0"
  99. 9200  IF N<>101 THEN 10300
  100. 9300  IF W$(1)<>"1" THEN 17600
  101. 9400  FOR J = 2 TO N
  102. 9500  IF W$(J)<>"0" THEN 17600
  103. 9600  NEXT J
  104. 9700  G=1
  105. 9800   GOTO 10300
  106. 9900  PRINT "SORRY BUT THE NUMBER YOU ENTER MUST CONTAIN ONLY"
  107. 10000  PRINT "DIGITS (0-9) AND COMMAS - NO OTHER CHARACTERS"
  108. 10100  PRINT "PLEASE REENTER YOUR "; W5$(C); " NUMBER CORRECTLY NOW"
  109. 10200   GOTO 7000
  110. 10300  IF N<=9 THEN 10700
  111. 10400  I=INT((RND(0)*36)+1)
  112. 10500  J=INT((RND(0)*74)+1)
  113. 10600  PRINT W6$(I); " "; A1$; ", THAT WAS "; W7$(J); " NUMBER"
  114. 10700  N1=INT((N+2)/3)
  115. 10800  N2=((N1*3)+1)-N
  116. 10900  PRINT "THE NUMBER ";
  117. 11000  J=11
  118. 11100  ON N2 GOTO 11600,11400,11200
  119. 11200  PRINT " ";
  120. 11300  J=J+1
  121. 11400  PRINT " ";
  122. 11500  J=J+1
  123. 11600  FOR I = 1 TO N
  124. 11700  ON N2 GOTO 11800,11800,11800,12000
  125. 11800  PRINT W$(I);
  126. 11900   GOTO 12100
  127. 12000  PRINT ",";
  128. 12100  J=J+1
  129. 12200  N2=N2+1
  130. 12300  IF N2<=4 THEN 12500
  131. 12400  N2=1
  132. 12500  IF J<=78 THEN 13000
  133. 12600  PRINT 
  134. 12700  PRINT TAB(11);
  135. 12800  J=11
  136. 12900   GOTO 11800
  137. 13000  IF N2=1 THEN 11800
  138. 13100  NEXT I
  139. 13200  PRINT 
  140. 13300  PRINT TAB(5); "IS SPOKEN IN ENGLISH AS: "
  141. 13400  IF G=0 THEN 13800
  142. 13500  PRINT "TAB(11); "ONE GOOGOL"
  143. 13600  G=0
  144. 13700   GOTO 6500
  145. 13800  N2=((N1*3)+1)-N
  146. 13900  PRINT TAB(11);
  147. 14000  F1=1
  148. 14100  F2=0
  149. 14200  FOR I = 1 TO N
  150. 14300  D=VAL(W$(I))
  151. 14400  ON N2 GOTO 14500,15000,15600
  152. 14500  F2=F2+D
  153. 14600  IF D=0 THEN 17000
  154. 14700  PRINT W1$(D+1);:PRINT " ";
  155. 14800  PRINT W4$(1);:PRINT " ";
  156. 14900   GOTO 17000
  157. 15000  F2=F2+D
  158. 15100  ON D+1 GOTO 17000,15200,15400,15400,15400,15400,15400,15400,15400,15400
  159. 15200  F1=2
  160. 15300   GOTO 17000
  161. 15400  PRINT W3$(D-1) ;
  162. 15500   GOTO 17000
  163. 15600  F2=F2+D
  164. 15700  ON F1 GOTO 15800,16300
  165. 15800  IF N=1 THEN 16100
  166. 15900  IF F2=0 THEN 16700
  167. 16000  IF D=0 THEN 16400
  168. 16100  PRINT W1$(D+1);:PRINT " ";
  169. 16200   GOTO 16400
  170. 16300  PRINT W2$(D+1) ;:PRINT " ";
  171. 16400  IF N1<=1 THEN 17000
  172. 16500  PRINT W4$(N1)
  173. 16600  PRINT TAB(11) ;
  174. 16700  N1=N1-1
  175. 16800  F1=1
  176. 16900  F2=0
  177. 17000  N2=N2+1
  178. 17100  IF N2<>4 THEN 17300
  179. 17200  N2=1
  180. 17300  NEXT I
  181. 17400  PRINT 
  182. 17500   GOTO 6500
  183. 17600  PRINT 
  184. 17700  PRINT "WELL "; A1$; " THAT NUMBER IS BIGGER THAN A GOOGOL(1FOLLOWED"
  185. 17800  PRINT "BY 100 ZEROS). BEFORE I TELL YOU HOW TO SAY IT, YOU MUST"
  186. 17900  PRINT "FIRST SHOW YOURSELF WORTHY. TAKE A PENCIL AND SOME PAPER"
  187. 18000  PRINT "AND WRITE DOWN ALL THE DIGITS IN A GOOGOLPLEX. A GOOGOLPLEX"
  188. 18100  PRINT "IS 1 FOLLOWED BY A GOOGOL NUMBER OF ZEROS WHEN YOU HAVE"
  189. 18200  PRINT "WRITTEN ALL THE DIGITS IN A GOOGOLPLEX DOWN ON PAPER COME"
  190. 18300  PRINT "AND TYPE THEM IN FOR ME AND  THEN  I WILL KNOW YOU ARE"
  191. 18400  PRINT "WORTHY TO SPEAK NUMBERS LARGER THAN A GOOGOL"
  192. 18500  PRINT "GOOD BYE FOR NOW"
  193. 18600  DATA "AHA","BINGO","BOY","BOY OH BOY","BRAVO","EUREKA","GAD ZOOKS"
  194. 18700  DATA "GOLLY","GOSH","HEY","HEY THERE","HO HO","HOORAY","MAMA MIA","MAN"
  195. 18800  DATA "OH BOY","OH HO HO HO","OH ME","OH ME OH MY","OH MY","OHO","OH WOW"
  196. 18900  DATA "OK","O SOL O MI O","RIGHT ON","WHOOPIE","WILD","WOW","YE GADS"
  197. 19000  DATA "YES","YIKES","YIPES","YOW","YOWIE","ZINGO","ZOWIE"
  198. 19100  DATA "AN AMPLE","AN AUGUST","A BIG","A BRAWNY","A CAPACIOUS"
  199. 19200  DATA "A COMPREHENSIVE","A COLOSSAL","AN ELEPHANTE","AN ENORMOUS"
  200. 19300  DATA "AN EXTENSIVE","A GIGANTIC","A GORGEOUS","A GRAND","A GREAT"
  201. 19400  DATA "A HUGE","A HUMONGOUS","AN IMMENSE","A LARGE","A MAGNANIMOUS"
  202. 19500  DATA "A MAJESTIC","A MASSIVE","A MIGHTY","A MONSTROUS","A MUSCULAR"
  203. 19600  DATA "AN OSTENTATIOUS","A POMPOUS","A POWERFUL","A PRINCELY"
  204. 19700  DATA "A PRODIGIOUS","A REGAL","A SIGNIF ICANT","A SOPHISTICATED"
  205. 19800  DATA "A SPACIOUS","A SPLENDID","A STUPENDOUS","A SUPERB","A VAST","A WIDE"
  206. 19900  DATA "NOT YOUR AVERAGE","NOT YOUR COMMON","NOT YOUR COMMANPLACE","
  207. 20000  DATA "NOT A CRAMPED","NOT A DWARF OF A","NOT A ELEMENTARY"
  208. 20100  DATA "NOT YOUR EVERDAY","NOT A FEEBLE","NOT A FLIMSY","NOT A HUMBLE"
  209. 20200  DATA "NOT A HUMDRUM","NOT A INCHOATE","NOT AN INSIGNIF ICENT"
  210. 20300  DATA "NOT A LITTLE","NOT A MEAGER","NOT A MEEK"
  211. 20400  DATA "NOT A MERE WISP OF A","NOT A MINUTE","NOT A MODEST"
  212. 20500  DATA "NOT A OBSCURE","NOT YOUR ORDINARY","NOT A PALTRY"
  213. 20600  DATA "NOT A PETTY","NOT A PIGMY OF A","NOT A PUERILE","NOT A PUNY"
  214. 20700  DATA "NOT A SCANTY","NOT TO SHABBY OF A","NOT A SHALLOW"
  215. 20800  DATA "NOT A SIMPLE","NOT A SMALL","NOT A TINY","NOT A TRIF LING"
  216. 20900  DATA "NOT A TRIVIAL","NOT A UNDERSIZED","NOT AN UNNOTICEABLE"
  217. 21000  END
  218.